package com.founder.bdyx.wxpay.model;

import com.ijpay.core.model.BaseModel;

import java.util.List;

public class ProfitSharingModel extends BaseModel {
    /**
     * 公众号ID
     */
    private String appid;
    private String sub_appid;
    private String mch_id;
    private String sub_mch_id;
    private String nonce_str;
    private String sign;
    private String sign_type;
    /**
     * 微信订单号
     */
    private String transaction_id;
    /**
     * 商户分账单号 --> 现定义为商户内部订单号
     */
    private String out_order_no;
    /**
     * 分账接收方列表
     */
    private List<Receiver> receivers;
    private String description;
    /**
     * 是否解冻剩余未分资金 默认为true
     */
    private boolean unfreeze_unsplit;

    public static ProfitSharingModel.ProfitSharingModelBuilder builder() {
        return new ProfitSharingModel.ProfitSharingModelBuilder();
    }

    public ProfitSharingModel(String appid, String sub_appid, String mch_id, String sub_mch_id, String nonce_str, String sign, String sign_type, String transaction_id, String out_order_no, List<Receiver> receivers, String description) {
        this.appid = appid;
        this.sub_appid = sub_appid;
        this.mch_id = mch_id;
        this.sub_mch_id = sub_mch_id;
        this.nonce_str = nonce_str;
        this.sign = sign;
        this.sign_type = sign_type;
        this.transaction_id = transaction_id;
        this.out_order_no = out_order_no;
        this.receivers = receivers;
        this.description = description;
    }

    public String getAppid() {
        return this.appid;
    }

    public String getSub_appid() {
        return this.sub_appid;
    }

    public String getMch_id() {
        return this.mch_id;
    }

    public String getSub_mch_id() {
        return this.sub_mch_id;
    }

    public String getNonce_str() {
        return this.nonce_str;
    }

    public String getSign() {
        return this.sign;
    }

    public String getSign_type() {
        return this.sign_type;
    }

    public String getTransaction_id() {
        return this.transaction_id;
    }

    public String getOut_order_no() {
        return this.out_order_no;
    }

    public List<Receiver> getReceivers() {
        return this.receivers;
    }

    public String getDescription() {
        return this.description;
    }

    public void setAppid(String appid) {
        this.appid = appid;
    }

    public void setSub_appid(String sub_appid) {
        this.sub_appid = sub_appid;
    }

    public void setMch_id(String mch_id) {
        this.mch_id = mch_id;
    }

    public void setSub_mch_id(String sub_mch_id) {
        this.sub_mch_id = sub_mch_id;
    }

    public void setNonce_str(String nonce_str) {
        this.nonce_str = nonce_str;
    }

    public void setSign(String sign) {
        this.sign = sign;
    }

    public void setSign_type(String sign_type) {
        this.sign_type = sign_type;
    }

    public void setTransaction_id(String transaction_id) {
        this.transaction_id = transaction_id;
    }

    public void setOut_order_no(String out_order_no) {
        this.out_order_no = out_order_no;
    }

    public void setReceivers(List<Receiver> receivers) {
        this.receivers = receivers;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public boolean getUnfreeze_unsplit() {
        return unfreeze_unsplit;
    }

    public void setUnfreeze_unsplit(boolean unfreeze_unsplit) {
        this.unfreeze_unsplit = unfreeze_unsplit;
    }

    public static class ProfitSharingModelBuilder {
        private String appid;
        private String sub_appid;
        private String mch_id;
        private String sub_mch_id;
        private String nonce_str;
        private String sign;
        private String sign_type;
        private String transaction_id;
        private String out_order_no;
        private List<Receiver> receivers;
        private String description;
        private boolean unfreeze_unsplit;

        ProfitSharingModelBuilder() {
        }

        public ProfitSharingModel.ProfitSharingModelBuilder appid(String appid) {
            this.appid = appid;
            return this;
        }

        public ProfitSharingModel.ProfitSharingModelBuilder sub_appid(String sub_appid) {
            this.sub_appid = sub_appid;
            return this;
        }

        public ProfitSharingModel.ProfitSharingModelBuilder mch_id(String mch_id) {
            this.mch_id = mch_id;
            return this;
        }

        public ProfitSharingModel.ProfitSharingModelBuilder sub_mch_id(String sub_mch_id) {
            this.sub_mch_id = sub_mch_id;
            return this;
        }

        public ProfitSharingModel.ProfitSharingModelBuilder nonce_str(String nonce_str) {
            this.nonce_str = nonce_str;
            return this;
        }

        public ProfitSharingModel.ProfitSharingModelBuilder sign(String sign) {
            this.sign = sign;
            return this;
        }

        public ProfitSharingModel.ProfitSharingModelBuilder sign_type(String sign_type) {
            this.sign_type = sign_type;
            return this;
        }

        public ProfitSharingModel.ProfitSharingModelBuilder transaction_id(String transaction_id) {
            this.transaction_id = transaction_id;
            return this;
        }

        public ProfitSharingModel.ProfitSharingModelBuilder out_order_no(String out_order_no) {
            this.out_order_no = out_order_no;
            return this;
        }

        public ProfitSharingModel.ProfitSharingModelBuilder receivers(List<Receiver> receivers) {
            this.receivers = receivers;
            return this;
        }

        public ProfitSharingModel.ProfitSharingModelBuilder description(String description) {
            this.description = description;
            return this;
        }

        public ProfitSharingModel.ProfitSharingModelBuilder unfreeze_unsplit(boolean unfreeze_unsplit) {
            this.unfreeze_unsplit = unfreeze_unsplit;
            return this;
        }

        public ProfitSharingModel build() {
            return new ProfitSharingModel(this.appid, this.sub_appid, this.mch_id, this.sub_mch_id, this.nonce_str, this.sign, this.sign_type, this.transaction_id, this.out_order_no, this.receivers, this.description);
        }

        public String toString() {
            return "ProfitSharingModel.ProfitSharingModelBuilder(appid=" + this.appid + ", sub_appid=" + this.sub_appid + ", mch_id=" + this.mch_id + ", sub_mch_id=" + this.sub_mch_id + ", nonce_str=" + this.nonce_str + ", sign=" + this.sign + ", sign_type=" + this.sign_type + ", transaction_id=" + this.transaction_id + ", out_order_no=" + this.out_order_no + ", receivers=" + this.receivers + ", description=" + this.description + ")";
        }
    }
}

